#ifndef H_KEYBOARD
#define H_KEYBOARD

#include"EventBoard.h"

enum KeyboardEvents {
   AG_KEY_UP,
   AG_KEY_DOWN,
   AG_KEY_LEFT,
   AG_KEY_RIGHT,
};

#define MAX_KEYBOARD_BINDS 100
// Binds an event to message
struct EventBind
{
   int event;
   int message;
};

class Keyboard
{
   protected:
      EventBoard* board; //aca posteo los eventos que genera el teclado
      EventBind bind_list[MAX_KEYBOARD_BINDS];
      int binds;
   public:
      Keyboard(EventBoard* eb);
      void bind(int event, int message);
      void check();
      virtual int init ( void* data); //data is any data needed to init
      virtual void done ();
      virtual int getEvent ();
}; 

#endif
